This invention relates generally to the transmission of information over a channel and, more particularly, to encoding schemes for transmitting information using high-rate constrained codes.
In the field of digital communications, information must typically be encoded before it can be transmitted over a communications channel or recorded on a medium. First, if the information is not already in digital form, it is typically digitized through the use of an analog-to-digital converter so that the information is represented as symbols from the set of binary digits or bits, (0,1). Next, the digitized information may optionally be compressed to represent the information in a reduced number of symbols. Any reduction in the number of symbols due to compression may be partially offset through the use of error-correcting codes. Error-correcting codes introduce additional symbols, called redundancy, to a data signal to form an encoded signal. In particular, an error-correcting code operates on groups of symbols, called information words, in the data signal. Each information word is used to generate, according to a prescribed error-correcting coding rule, a codeword comprising a larger group of symbols.
Importantly, an additional or further kind of coding, termed modulation coding, is often used to process information (such as the encoded signal generated using the error-correcting codes) before transmission over a channel or recording on a medium. In particular, modulation coding advantageously transforms a group of input symbols (such as a group of symbols including a codeword generated by an error-correcting code) and generates a channel or modulation codeword comprising a larger number of symbols than the number of symbols in the group of input symbols. As with error-correcting codes, modulation coding can improve a system's immunity to noise. Perhaps more importantly, modulation codes can advantageously be used to regulate time parameters (e.g. for controlling oscillator or counting circuits) and to regulate gain parameters (e.g. for amplifier circuits) in recording and communications systems.
For example, a system may wish to record or read a channel codeword comprising a sequence of binary digits on a magnetic medium (e.g., a hard disk, magnetic tape, etc.). The binary sequence is advantageously used to modulate or control the flow of an electrical current in one of two opposite directions. The current, in turn, produces a magnetic field in one of two opposite directions depending on the direction of the current. In particular, transitions from one direction in the current (and hence in the magnetic field) to the other correspond to a binary “1” in the codeword sequence. A binary “0” in the sequence causes no change in the direction of magnetization. Thus, the first “1” in the sequence of the codeword would cause the current (and corresponding magnetic field) to transition or switch to the opposite direction. The current and corresponding magnetic field would remain in the opposite direction until the next “1” is encountered in the codeword sequence.
To represent the binary codeword sequence on the magnetic medium, the magnetic medium is divided into portions with each portion corresponding to a particular digit in the binary sequence. Each portion of the magnetic medium is then exposed to a magnetic field according to its corresponding bit in the channel codeword, and the output is consequently magnetized by the field in one of the two directions. The information recorded on the medium is termed a channel sequence and is defined by the channel codeword. The channel sequence comprises channel symbols, but, unlike the symbols in the information and channel codewords described above, the channel symbols in a channel sequence for a magnetic medium are advantageously selected from a set of bipolar symbols, (−1,1), which set of symbols more closely reflects the physical manifestation of the channel sequence on the medium in which the portions are magnetized with equal (i.e. unit) intensity in one of two bi-polar directions.
The channel codeword which defines the channel sequence is read by detecting a change in a voltage signal caused by either changes in the magnetization of portions of the medium or by noise in the system. The voltage signal is a pulse each time a “1” is detected and noise each time a “0” is detected. The position of the pulses carries information about timing parameters in the system, and the height of the pulses carries information about gain parameters in the system. Importantly, however, if a long string of “0's” are read, there is no voltage output (other than noise), and hence no timing or gain information, thereby leading to a loss of, or drift in, timing and gain parameters. Thus, modulation coding schemes which advantageously avoid the recording or transmission of long strings of binary zeros in channel codewords (e.g., runlength-limited or “RLL” codes) may be used to ensure accurate timing and gain information.
In addition to ensuring accurate timing and gain information, modulation coding may also advantageously be used to generate “DC-limited” coding sequences. It is preferable that a stream of data to be encoded be balanced in such a way so as to include an equal number of logical one bits and logical zero bits. In electrical signal terms, a balanced data stream (i.e., a “DC-free” sequence) does not have a corresponding DC component, whereas an unbalanced data stream has a DC component. Balanced data is desirable for many reasons, especially because balanced data permits the use of AC-coupled circuits in the communication or recording link and simpler regulation and detection in optical and magnetic receivers. Balanced data can also provide further immunity from noise.
DC-limited and DC-free codes are increasingly used in such areas as high-density and perpendicular recording to improve performance. The main difference between traditional longitudinal recording and perpendicular recording is the orientation of the media grains. In the case of longitudinal recording, the magnetization is lying in the plane of the magnetic medium. When the media is magnetized by the recording head, the average magnetization is pointing in the down-track direction. When perpendicular head and media are used, the media grains are oriented in the depth of the medium, and their magnetization is pointing either up or down. With this arrangement, DC-limited data is highly desirable to reduce DC baseline wandering and data distortion.
More particularly, DC-free codes have a spectral null at zero frequency. This can be approximated by bounding the running digital sum (i.e. the arithmetic sum) of all the symbols transmitted in the sequence over a channel or recorded on a medium. One way to assure a DC-free or DC-limited sequence is to design a system in which the block digital sum or the arithmetic sum of symbols in a channel sequence approaches zero. However, these codes are difficult to produce without adding an excessive number of symbols to the information to be recorded, resulting in very low code rates. In addition, these codes typically require complex encoding and decoding circuitry that often require large power consumption and a large amount of area on integrated circuits relative to other elements in the transmission or recording system.
Thus, it would be desirable to provide an efficient, high-rate constrained coding scheme for encoding data to be transmitted or recorded. This constrained coding scheme could be used to generate high-rate DC-limited codes. The coding scheme may be simple enough to implement in software and may be used in tandem with other codes, such as error-correcting codes.